iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

簡介密碼學系列 第 14

Day14- 區塊加密使用模式

  • 分享至 

  • xImage
  •  

區塊加密的多種使用模式

除了最基礎的使用外,區塊加密演算法還能根據需求玩出不一樣的花樣
常見的區塊加密使用模式主要有兩種

ECB

ECB全文Electronic codebook
顧名思義codebook就是傳統的密碼表,明文跟金鑰就能直接對照出密文
看看下圖
https://ithelp.ithome.com.tw/upload/images/20220915/201518218KrNwclfP6.png
不難看出ECB就是值解把明文分成指定大小的區塊,然後直接丟入區塊加密和金鑰做加密

CBC

CBC全文Cipher block chaining
看看下圖
https://ithelp.ithome.com.tw/upload/images/20220915/20151821UyTCtOwbr9.png
chaining意為每個block的結果都會和下一個要加密的block做xor這樣就成為了一條加密鍊環環相扣
而對於最初的明文block則會用一段初始陣列IV來和該block做xor,這個IV不用特意取保密他,只要金鑰沒有外洩
都不會被破解,但IV要存下來,解密時會用到

ECB vs CBC

為啥要搞這麼麻煩?原因很簡單,就是ECB用同樣的明文block會得到同樣的密文
在書寫文字上可能還好,畢竟兩段文字要一模一樣還是有些難度
但如果是對圖片的位元做加密,就不好說了
https://ithelp.ithome.com.tw/upload/images/20220915/20151821aDlcyC4hC7.jpg
上面這張圖可以看出透過ECB加密的企鵝還是會保留部分的特徵
畢竟企鵝就這些顏色,兩個block完全一樣好像也挺容易的
而CBC透過IV和輸出回傳的加密鍊就能讓每個block的不會一樣
這樣就能避免部分特徵被保留的問題了
但CBC也付出了加密速度和容錯率的代價
想想看ECB每個block都是獨立的那就意味著能同時加密很多block達成加快運算的目的,而且一個block中的一個位元出錯最多只會影響該block
但CBC每個block都必須等待前面的block做完才能開始,造成了不能平行加密而導致速度變慢的問題,而且一個block中的一個位元錯誤就會導致後面全掛,因為他是環環相扣的

還有很多使用mods
但好像都不太常見
有興趣可以參考
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Confidentiality_only_modes


上一篇
Day13- AES key schedule
下一篇
Day15- 非對稱式密碼
系列文
簡介密碼學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言